package Vista;

import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import GestionDeDatos.GestorBD;
import InfoCliente.Amistad;
import InfoCliente.Solicitud;
import InfoCliente.UsuarioActivo;

public class AgregarAmigos {
	
private JPanel mainPanel = new JPanel();
	
	private JLabel jlb_intro, jlb_amigo;
	private JTextField jtf_amigo;
	private JButton jb_agregar, jb_eliminar;
	
	public AgregarAmigos() {
		initComponents();
	}

	protected void clearTextFields() {
		jtf_amigo.setText("");
	}

	private void initComponents() {
		mainPanel.setLayout(null);
		mainPanel.add(getJLabelIntro());
		mainPanel.add(getJLabelAmigo());
		mainPanel.add(getJTextFieldAmigo());
		mainPanel.add(getJButtonAgregar());
		mainPanel.add(getJButtonEliminar());
		mainPanel.setSize(530, 450);
		
		this.AgregarActionListener(new ActionListener() {
	         @Override
	         public void actionPerformed(ActionEvent e) {
	        	 
	        	 if (jtf_amigo.getText().isEmpty() == true) {
	        		 JOptionPane.showMessageDialog(mainPanel, "Ingrese padron de su amigo.");
	        	 }
	        	 
	        	 
	        	 UsuarioActivo usuarioPide = new UsuarioActivo(View.id, View.pass);
	        	 
	        	 try {
		        	 Solicitud solicitud = new Solicitud(View.id, getPadron());
	        		 GestorBD.Gestor().EnviarSolicitud(usuarioPide, solicitud);
	        		 
	        	 } catch (NumberFormatException exception) {
		 			JOptionPane.showMessageDialog(mainPanel, "Padron Invalido.  Solo caracteres numericos.", "Mensaje", JOptionPane.PLAIN_MESSAGE);
	        	 
	         	 } catch (Exception exception) {
	        		 JOptionPane.showMessageDialog(mainPanel, exception.getMessage());
	        		 
	 		 	 } 
	    		
	         }
	      });
		
		this.EliminarActionListener(new ActionListener() {
	         @Override
	         public void actionPerformed(ActionEvent e) {
	        	 
	        	 if (jtf_amigo.getText().isEmpty() == true) {
	        		 JOptionPane.showMessageDialog(mainPanel, "Ingrese padron de su amigo.");
	        	 }
	        	 
	        	 
	        	 UsuarioActivo usuarioDeshace = new UsuarioActivo(View.id, View.pass);
	        	 Amistad amistad = new Amistad(View.id, getPadron());
	        	 try {
	        		 GestorBD.Gestor().DeshacerAmistad(usuarioDeshace, amistad);
	        	 } catch (Exception exception) {
	        		 JOptionPane.showMessageDialog(mainPanel, exception.getMessage());
	        	 }
	         }
	      });
	}
	
public int getPadron() throws NumberFormatException{

		return Integer.parseInt(jtf_amigo.getText());

	}

	private JLabel getJLabelIntro() {
		if (jlb_intro == null) {
			jlb_intro = new JLabel("Agregar Amigos");
			Font newTextFieldFont=new Font(jlb_intro.getFont().getName(),jlb_intro.getFont().getStyle(),18);   
		    jlb_intro.setFont(newTextFieldFont);  
		    jlb_intro.setBounds(50, 20, 400, 50);
		}

		return jlb_intro;
	}
	
	private JTextField getJTextFieldAmigo() {
		if (jtf_amigo == null) {
			jtf_amigo = new JTextField();  
		    jtf_amigo.setBounds(325, 200, 100, 25);
		}

		return jtf_amigo;
	}
	
	private JLabel getJLabelAmigo() {
		if (jlb_amigo == null) {
			jlb_amigo = new JLabel("Ingrese el padrón de su amigo:");
			Font newTextFieldFont=new Font(jlb_amigo.getFont().getName(),jlb_amigo.getFont().getStyle(),14);   
		    jlb_amigo.setFont(newTextFieldFont);  
		    jlb_amigo.setBounds(50, 200, 250, 20);
		}

		return jlb_amigo;
	}
	
	private JButton getJButtonAgregar() {
		if (jb_agregar== null) {
			jb_agregar = new JButton();
			jb_agregar.setText("Agregar");
	        jb_agregar.setMargin(new Insets(1, 5, 1, 5));
	        jb_agregar.setBounds(325, 320, 100, 40); 
		}
		return jb_agregar;
	}
	
	private JButton getJButtonEliminar() {
		if (jb_eliminar== null) {
			jb_eliminar = new JButton();
			jb_eliminar.setText("Eliminar");
	        jb_eliminar.setMargin(new Insets(1, 5, 1, 5));
	        jb_eliminar.setBounds(125, 320, 100, 40); 
		}
		return jb_eliminar;
	}
	
	private void AgregarActionListener(ActionListener listener) {
		jb_agregar.addActionListener(listener);	
	}
	
	private void EliminarActionListener(ActionListener listener) {
		jb_eliminar.addActionListener(listener);	
	}
	
	public JComponent getMainComponent() {
	      return mainPanel;
	}


}
